/*选择退货商品*/
function chooseReturn(index){
	$("#goods_grid").datagrid('selectRow',index);//通过下标选中行
	var row = $("#goods_grid").datagrid('getSelected');//获取所选择的行
/*	var return_rows = $('#return_grid').datagrid('getRows');*/	
	var return_amount = row.amount;//可退货数量
	/*
	//计算：可退货数量 = 商品购买数量-已经添加到前台的商品数量
	for (var i = 0; i < return_rows.length; i++) {
		if(row.id==return_rows[i].id){
			return_amount = return_amount - parseInt(return_rows[i].amount);
		} 
    }
	*/
	$("#returnGoodId").attr('value',row.barcode);//选中的商品的条码
	$("#returnGood").attr('value',row.name);//选中的商品的名称
	
	//根据所选商品的可退货数量动态生成下拉框内容
	$("#selectAmount").find("option").remove();//删除节点
	/*if(return_amount==0){
		$('#selectAmount').append('<option>0</option>');
	}*/
	
	for(var i=1;i<=return_amount;i++){
		var option = '<option>'+i+'</option>';
		$('#selectAmount').append(option);//添加下拉框选项
	}
	
	/*退货原因选择其他时显示文本域*/
	$("#reason").change(function(){
		if($("#reason").val()==""){
			$("#otherReason_div").show();//显示输入框
		}else{
			$("#otherReason").val("");//清空输入框
			$("#otherReason_div").hide();//隐藏输入框
		}
	});
	
	$("#otherReason").val("");//清空输入框
	$("#reason").val("商品出现质量问题");//
	$("#otherReason_div").hide();//隐藏输入框
	
	//打开设置退货数量的对话框
	$("#setAmount_dialog").dialog({
		width:400,
		height:380,
		title:'商品退货',
        resizable: false,
        modal: true,
        buttons: [{
            text: '确定',
            iconCls: 'icon-save',
            handler: function () {
            	var amount = $("#selectAmount").val();//商品退货数量
            	var totalprice = amount*row.price;//总价格
            	var reason = $("#reason").val()+$("#otherReason").val();
            	//把需要退款的商品加载到前台
            	if(isExist(row)){
            		
            	}else{
            		$('#return_grid').datagrid('appendRow',
        					{
//        						index:0,
//        						row:{
        							id:row.id,
        							barcode:row.barcode,
        							name:row.name,
        							unit:row.unit,
        							price:row.price,
        							amount:amount,
        							totalprice:totalprice,
        							reason:reason,
//        						},
        					}
        				);
            	}
            	computeAll();//计算
            	$("#setAmount_dialog").dialog('close');
            }
        }, {
            text: '取消',
            iconCls: 'icon-cancel',
            handler: function () {
            	$("#setAmount_dialog").dialog('close');
            }
        }]
    });
    $("#setAmount_dialog").dialog('open');
	
}

/*删除一行商品*/
function deleteGood(index){
	$("#return_grid").datagrid('deleteRow',index);//通过下标删除行
	computeAll();//计算
	var rows = $('#return_grid').datagrid('getRows');//获取所有要退货的商品
	$('#return_grid').datagrid('loadData',{
		total:rows.length,
		rows:rows
		});//经过删除后刷新退货表格，不然下标错乱
}

/*修改商品*/
function editGood(index){
	$("#return_grid").datagrid('selectRow',index);//通过下标选中行
	var row = $("#return_grid").datagrid('getSelected');//获取所选择的行
	var goods_rows = $('#goods_grid').datagrid('getRows');//获取退货单所有商品
	for (var i = 0; i < goods_rows.length; i++){
		if(goods_rows[i]['id']==row.id){
			chooseReturn(i);//选择退货商品
		}
	}
}

/*判断是否已经添加此商品*/
function isExist(value){
	var rows = $('#return_grid').datagrid('getRows');
    for (var i = 0; i < rows.length; i++) {
    	if(rows[i]['id']==value.id){
    		//说明同一商品已经存在
    		var amount = parseInt($("#selectAmount").val());
//    		amount = parseInt(rows[i]['amount'])+amount;//数量
//    		rows[i]['amount']=amount;
    		//更新数量
    		$('#return_grid').datagrid('updateRow',{
        		index: i,
        		row: {
//        			amount: rows[i]['amount'], //已修改
        			amount: amount,
        			reason: $("#reason").val()+$("#otherReason").val(),
        			totalprice:amount*rows[i]['price'],//修改金额
        		}
        	});
        	return true;
    	}
    }
}

/*获取退货单号*/
function gain_returnId(){
	$.ajax({
        type:'POST',
        url:'gainReturnId.action',
        dataType: "json",
        success:function(data){
       	 if (data.success){
       		 $('#returnGoodsId').attr('value',data.message);//把订单号填到表单
			 }
        }
    });
}

/*退货数量的计算*/
function computeAmount(){
	var rows = $('#return_grid').datagrid('getRows');//获取当前的数据行
    var amount = 0;//退货数量
    for (var i = 0; i < rows.length; i++) {
    	amount +=  parseInt(rows[i]['amount']);
    }
    $('#amount').attr('value',amount);//把数据填写到退货数量的文本框中
}

/*退货金额的计算*/
function computeReturnPrice(){
	var rows = $('#return_grid').datagrid('getRows');//获取当前的数据行
    var totalprice = 0;//退款金额
    for (var i = 0; i < rows.length; i++) {
    	totalprice += rows[i]['totalprice'];
    }
    var discount = $('#discount').val();
    $('#totalprice').attr('value',(totalprice*discount).toFixed(1));//把数据填写到退款金额的文本框中
}

/*计算扣除的积分*/
function computeIntegral(){
	if($('#customerId').val()=="非会员"){
		$('#integral').attr('value','0');
    }else{
    	$('#integral').attr('value',parseInt($('#totalprice').val()));
    }
}

/*计算全部*/
function computeAll(){
	computeAmount();
	computeReturnPrice();
	computeIntegral();
}


$(function(){
	
	/*显示退货超链接*/
	function showReturn(value,row,index){
		return '<a id="btn" style="display:block;color:#e63a31" onclick="chooseReturn('+index+')"  href="javascript:void(0)">退货</a>';
	}

	/*显示删除超链接*/
	function removeRow(value,row,index){
		return '<a id="btn_delete" style="display:block;color:#e63a31" onclick="deleteGood('+index+')"  href="javascript:void(0)">删除</a>';
	}

	/*显示修改超链接*/
	function modifyRow(value,row,index){
		return '<a style="display:block;color:#e63a31" onclick="editGood('+index+')"  href="javascript:void(0)">修改</a>';
	}
	
	
	/*初始化商品对话框*/
	$('#goods_dialog').dialog({
		closed:true,
		left:120,
		top:30,
	});
	
	/*初始化选择退货数量对话框*/
	$('#setAmount_dialog').dialog({
		closed:true,
		top:50,
	});
	
	/*初始化选择退货数量对话框*/
	$('#checkReturn_dialog').dialog({
		closed:true,
		top:50,
	});
	
	/*初始化退货单小票对话框*/
	$('#return_receipt_dialog').dialog({
		closed:true,
		top:5,
	});
	
	/*支付单搜索*/
	$('#orderid').textbox({
		onClickButton:function(){
			gain_returnId();//获取退货单号
			searchPayment();
			$('#return_grid').datagrid('loadData',{total:0,rows:[]});//清空datagrid
		}
	});
	
	/*回车支付单搜索*/
	$('#orderid').textbox('textbox').keydown(function(event){
		if(event.keyCode == "13"){
			gain_returnId();//获取退货单号
			searchPayment();
			$('#return_grid').datagrid('loadData',{total:0,rows:[]});//清空datagrid
		}
	});
	
	/*退货按钮点击事件*/
	$('#returnGoods').click(function(){
		var rows = $('#return_grid').datagrid('getRows');//获取当前的数据行
    	if(rows.length<=0){
    		$.messager.alert('警告','请录入要退货的商品！','info',function(){
				$("#orderid").select();//输入框获取焦点并全选文字
			});
    	}else{
    		$.messager.confirm('提示', '确认退货？', function(r){
        		if (r){
        			saleReturn();//退货
        		}
        	});
    	}
	});
	
	/*退货*/
	function saleReturn(){
		var rows = $('#return_grid').datagrid('getRows');
        var rowObj = JSON.stringify(rows);//把json对象转为字符串
        var customerId = $('#customerId').val();
        if($('#customerId').val()=="非会员"){
        	customerId=0;
        }
        
        $.ajax({
            type: "POST",
            url: "returnGoods.action",
            data: {
            	rowObj:rowObj,
            	userId:$('#cashierId').val(), //经手人
            	returnId:$('#returnGoodsId').val(), //退货单号
            	total:$('#totalprice').val(), //退款额
            	amount:$('#amount').val(), //数量
            	integral:$('#integral').val(), //积分
            	paymentId:$('#paymentId').val(), //支付单号
            	customerId:customerId, //会员
            },
            dataType: "json",
            success: function(data){
            	if (data.success){
					$.messager.show({
						timeout:3000,
						title: '提示',
						msg: data.message
					});
					//判断是否打印退货单
	                if ($('#outputReturnReceipt').is(":checked")) { 
	                	outputReturnReceipt();//输出退货单
	                } 
					resetForm();//清空单据
					
				} else {				
					$.messager.show({
						timeout:1000,
						title: '错误',
						msg: data.message
					});
				}
            }
        });
	
	}
	
	/*打印退货单*/
	function outputReturnReceipt(){
		$("#return_receipt_table").find("tr").remove();//删除节点
		var rows = $('#return_grid').datagrid('getRows');
		var totalprice = 0;
		$('#return_receipt_table').append('<tr><td>退货商品</td><td></td><td>单价</td><td>数量</td><td>金额</td></tr>');
		for (var i = 0; i < rows.length; i++) {
			 totalprice += rows[i]['totalprice'];
			 var tableRow = '<tr>' +
             '<td>' + rows[i]['barcode'] + '</td>' +
             '<td>' + rows[i]['name'] + '</td>' +
             '<td>' + rows[i]['price'].toFixed(2) + '</td>' +
             '<td>' + rows[i]['amount'] + '</td>' +
             '<td>' + rows[i]['totalprice'].toFixed(2) + '</td>' +
             '</tr>';
			 $('#return_receipt_table').find('tr').css('display','table-row');
			 $('#return_receipt_table').append(tableRow);
			
        }
		//把购物信息填写到小票
		$('#r_returnId').html($('#returnGoodsId').val());
		$('#r_user').html($('#uesrname').val());
		$('#r_customer').html($('#customerId').val());
		$('#r_amount').html($('#amount').val());
		$('#r_discount').html($('#discount').val());
		$('#r_totalprice').html(totalprice);//合计金额
		if($('#customerId').val()=="非会员"){
        	$('#r_discount').html('无');
        	$('#r_integral').html('无');
        }
		$('#r_integral').html($('#integral').val());//扣除积分
		$('#r_returnprice').html(parseFloat($('#totalprice').val()).toFixed(2));//退款金额
		$('#r_time').html((new Date()).toLocaleString());//显示时间
		
		//小票对话框
		$('#return_receipt_dialog').dialog({
			resizable: false,
			title: "退货单",
		    modal: true,
		});
		$('#return_receipt_dialog').dialog('open');
	}
	
	/*清空单据*/
	function resetForm(){
		$('#return_grid').datagrid('loadData',{total:0,rows:[]});//清空datagrid
		$('#orderid').textbox('setValue','');
		$('#returnGoodsId').attr("value","");
		$('#customerId').attr("value","");
		$('#discount').attr("value","");
		
		computeAll();
	}
	
	/*清空单据*/
	$('#resetForm').click(function(){
		$.messager.confirm('提示', '确定清空单据？', function(r){
    		if (r){
    			resetForm();
    		}
    	});
	});
	
	/*通过小票号搜索支付单，返回支付单信息*/
	function searchPayment(){
		$.ajax({
            type: "POST",
            url: "searchPayment.action",
            data: {
            	paymentId:$('#orderid').textbox('getValue'), //支付单号
            },
            dataType: "json",
            success: function(data){
            	if (data.success){
            		open_goods_dialog();//打开选择退款商品对话框
            		$('#paymentId').attr('value',$('#orderid').textbox('getValue'));
//            		$("#customer_details").form('load', data.customerInfo);
            		$('#customerId').attr('value',data.customerInfo[0].customerId);
            		$('#discount').attr('value',data.customerInfo[0].discount);
            		$('#goods_grid').datagrid('loadData',{
        				total:data.rows.length,
        				rows:data.rows,
        			});
            		
				} else {				
					$.messager.show({
						title: '提示',
						timeout:1000,
						msg: data.message,
					});
				}
            }
        });
	}
	
	/*初始化退货数据表格*/
	load_return_grid();

	/*加载退货表格*/
	function load_return_grid(){
		$('#return_grid').datagrid({
	        method:'post',
	        loadMsg : '正在加载…',
	        fit : true, 
	        nowrap: false, //设置为true，当数据长度超出列宽时将会自动截取
	        fitColumns : true, 
	        singleSelect : true,
	        sortName : 'id',
	        sortOrder : 'asc',
	        striped : true,  // 隔行变色  
	        pagination : false,
	        pageNumber : 1, // 初始化页码 
	        pageSize : 10,  // 每页10条记录
	        pageList : [ 10, 20, 30, 50 ],
	        idField : 'id', // 主键属性
	        rownumbers : true,
	        frozenColumns : [ [{title : '商品编码', width : '90', field : 'id', sortable : false,align:'center'}, 
	   	            {title : '商品条码',width : '100', field : 'barcode', sortable : false,align:'center'}, 
	   	            {title : '商品名称', width : '170', field : 'name',sortable : false,align:'center'},
	   		        {title : '单位', width:'80',field:'unit',sortable :false,align:'center'},
	   		        {title : '单价', width:'90',field:'price',sortable :false,align:'center'},
	   		        {title : '退货数量', width:'90',field:'amount',sortable :false, align:'center',editor:{type:'combobox'},},
	   		        {title : '退款金额', width:'90',field:'totalprice',sortable :false,align:'center'},
	   		        {title : '退货原因', width:'250',field:'reason',sortable :false,align:'left',editor:{type:'combobox'},},
	   		        {title : '', width:'80',field:'edit',align:'center',formatter:modifyRow},      
	   		        {title : '', width:'80',field:'delete',align:'center',formatter:removeRow},      
	        ] ],
	        
	    });
	}
	
	
	/*打开商品对话框*/
	function open_goods_dialog(){
		load_goods_grid();
		$("#goods_dialog").dialog({
			title:'退货',
	        resizable: false,
	        modal: true,
	        buttons: [{
	            text: '关闭',
	            iconCls: 'icon-cancel',
	            handler: function () {
	            	$("#goods_dialog").dialog('close');
	            }
	        }]
	    });
	    $("#goods_dialog").dialog('open');
		
	}
	
	/*打开退货对话框
	function open_checkReturn_dialog(){
		
	}*/
	
	/*加载商品表格*/
	function load_goods_grid(){
		$('#goods_grid').datagrid({
			title : '消费记录',
	        method:'post',
	        loadMsg : '正在加载…',
	        fit : true, 
	        nowrap: false, //设置为true，当数据长度超出列宽时将会自动截取
	        fitColumns : true, 
	        singleSelect : true,
	        sortName : 'id',
	        sortOrder : 'asc',
	        striped : true,  // 隔行变色  
	        pagination : false,
	        pageNumber : 1, // 初始化页码 
	        pageSize : 10,  // 每页10条记录
	        pageList : [ 10, 20, 30, 50 ],
	        idField : 'id', // 主键属性
	        rownumbers : true,
	        frozenColumns : [ [{title : '商品编码', width : '90', field : 'id', sortable : false,align:'center'}, 
	            {title : '商品条码',width : '100', field : 'barcode', sortable : false,align:'center'}, 
	            {title : '商品名称', width : '170', field : 'name',sortable : false,align:'center'},
		        {title : '单位', width:'80',field:'unit',sortable :false,align:'center'},
		        {title : '单价', width:'90',field:'price',sortable :false,align:'center'},
		        {title : '购买数量', width:'90',field:'amount',sortable :false, align:'center',},
		        {title : '购买总金额', width:'90',field:'totalprice',sortable :false,align:'center'},
		        {title : '退货', width:'80',field:'return',align:'center',formatter:showReturn} 
	        ] ],
	        
	    });
	}
	
});

